Reading Assignment 8
MPI
Write your answers in a PDF and upload the document on Gradescope for submission. The due date is given on Gradescope. Each question is worth 10 points.
Please watch the videos and slides starting from video “37 MPI Introduction” to video “50 MPI Communicators” (Module 8 and 9).
- Define the acronyms SIMD and SPMD.
- Explain what
MPI_ANY_SOURCEdoes. - What are tags used for in
MPI_SendandMPI_Recv? - Explain what the MPI functions
MPI_AllgatherandMPI_Alltoalldo. - Explain what the following command does:
mpirun --bind-to hwthread --map-by core ./mpi_hello
- Explain the difference between
MPI_Recvwith and without buffer. - Describe a scenario in which an MPI program deadlocks.
- Explain the role of
MPI_Requestwhen doingMPI_IsendandMPI_Irecv. - Is there a performance difference between an MPI matrix-vector product with row partitioning and column partitioning?
- What is the speed-up of a program according to Amdahl’s Law?
- What is the speed-up of a program according to Gustafson’s Law?
- How does the efficiency typically change as you increase the number of processes?
- What is the running time of an optimal all-to-all personalized collective operation with a hypercube network?
- In a matrix-matrix product, the total number of operations is $O(n^3)$. Assuming we have $p$ MPI processes, the total number of flops per process is $O(n^3/p)$. If we use the Dekel-Nassimi-Sahni algorithm, accounting for communications, we have the following running times:
Compute the iso-efficiency function $p(n)$ of this algorithm.
Hint: slide 60 will be useful.
- Explain what the MPI function
MPI_Group_incldoes.